<?xml version="1.0" encoding="UTF-8"?>
<!--
  =====================================================================
    This is the DTD for SVG 1.0.
  
    The specification for SVG that corresponds to this DTD is available at:
  
      http://www.w3.org/TR/2001/REC-SVG-20010904/
  
    Copyright (c) 2000 W3C (MIT, INRIA, Keio), All Rights Reserved.
  
    For SVG 1.0:
  
      Namespace:
        http://www.w3.org/2000/svg  
  
      Public identifier:
        PUBLIC "-//W3C//DTD SVG 1.0//EN"
  
      URI for the DTD:
        http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd
  =============================================================================
-->
<!--
  ==============================================================
  ENTITY DECLARATIONS: Data types 
  ==============================================================
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg">
  <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
  <xs:simpleType name="BaselineShiftValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'baseline-shift' property/attribute value (e.g., 'baseline', 'sub', etc.) -->
  <xs:simpleType name="Boolean">
    <xs:restriction base="xs:token">
      <xs:enumeration value="false"/>
      <xs:enumeration value="true"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- feature specification -->
  <xs:simpleType name="ClassList">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- list of classes -->
  <xs:simpleType name="ClipValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'clip' property/attribute value (e.g., 'auto', rect(...)) -->
  <xs:simpleType name="ClipPathValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'clip-path' property/attribute value (e.g., 'none', %URI;) -->
  <xs:simpleType name="ClipFillRule">
    <xs:restriction base="xs:token">
      <xs:enumeration value="nonzero"/>
      <xs:enumeration value="evenodd"/>
      <xs:enumeration value="inherit"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- 'clip-rule' or fill-rule property/attribute value -->
  <xs:simpleType name="ContentType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- media type, as per [RFC2045] -->
  <xs:simpleType name="Coordinate">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a <coordinate> -->
  <xs:simpleType name="Coordinates">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a list of <coordinate>s -->
  <xs:simpleType name="Color">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a <color> value -->
  <xs:simpleType name="CursorValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'cursor' property/attribute value (e.g., 'crosshair', %URI;) -->
  <xs:simpleType name="EnableBackgroundValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'enable-background' property/attribute value (e.g., 'new', 'accumulate') -->
  <xs:simpleType name="ExtensionList">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- extension list specification -->
  <xs:simpleType name="FeatureList">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- feature list specification -->
  <xs:simpleType name="FilterValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'filter' property/attribute value (e.g., 'none', %URI;) -->
  <xs:simpleType name="FontFamilyValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'font-family' property/attribute value (i.e., list of fonts) -->
  <xs:simpleType name="FontSizeValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'font-size' property/attribute value -->
  <xs:simpleType name="FontSizeAdjustValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'font-size-adjust' property/attribute value -->
  <xs:simpleType name="GlyphOrientationHorizontalValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'glyph-orientation-horizontal' property/attribute value (e.g., <angle>) -->
  <xs:simpleType name="GlyphOrientationVerticalValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>) -->
  <xs:simpleType name="Integer">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a <integer> -->
  <xs:simpleType name="KerningValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'kerning' property/attribute value (e.g., auto | <length>) -->
  <xs:simpleType name="LanguageCode">
    <xs:restriction base="xs:NMTOKEN"/>
  </xs:simpleType>
  <!-- a language code, as per [RFC3066] -->
  <xs:simpleType name="LanguageCodes">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- comma-separated list of language codes, as per [RFC3066] -->
  <xs:simpleType name="Length">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a <length> -->
  <xs:simpleType name="Lengths">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a list of <length>s -->
  <xs:simpleType name="LinkTarget">
    <xs:restriction base="xs:NMTOKEN"/>
  </xs:simpleType>
  <!-- link to this target -->
  <xs:simpleType name="MarkerValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'marker' property/attribute value (e.g., 'none', %URI;) -->
  <xs:simpleType name="MaskValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'mask' property/attribute value (e.g., 'none', %URI;) -->
  <xs:simpleType name="MediaDesc">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- comma-separated list of media descriptors. -->
  <xs:simpleType name="Number">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a <number> -->
  <xs:simpleType name="NumberOptionalNumber">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- list of <number>s, but at least one and at most two -->
  <xs:simpleType name="NumberOrPercentage">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a <number> or a  <percentage> -->
  <xs:simpleType name="Numbers">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a list of <number>s -->
  <xs:simpleType name="OpacityValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- opacity value (e.g., <number>) -->
  <xs:simpleType name="Paint">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a 'fill' or 'stroke' property/attribute value: <paint> -->
  <xs:simpleType name="PathData">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a path data specification -->
  <xs:simpleType name="Points">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a list of points -->
  <xs:simpleType name="PreserveAspectRatioSpec">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'preserveAspectRatio' attribute specification -->
  <xs:simpleType name="Script">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- script expression -->
  <xs:simpleType name="SpacingValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'letter-spacing' or 'word-spacing' property/attribute value (e.g., normal | <length>) -->
  <xs:simpleType name="StrokeDashArrayValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s) -->
  <xs:simpleType name="StrokeDashOffsetValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'stroke-dashoffset' property/attribute value (e.g., 'none', <legnth>) -->
  <xs:simpleType name="StrokeMiterLimitValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'stroke-miterlimit' property/attribute value (e.g., <number>) -->
  <xs:simpleType name="StrokeWidthValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'stroke-width' property/attribute value (e.g., <length>) -->
  <xs:attributeGroup name="StructuredText">
    <xs:attribute name="content" default="structured text">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="structured text"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="StyleSheet">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- style sheet data -->
  <xs:simpleType name="SVGColor">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- An SVG color value (RGB plus optional ICC) -->
  <xs:simpleType name="Text">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- arbitrary text string -->
  <xs:simpleType name="TextDecorationValue">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'text-decoration' property/attribute value (e.g., 'none', 'underline') -->
  <xs:simpleType name="TransformList">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- list of transforms -->
  <xs:simpleType name="URI">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a Uniform Resource Identifier, see [URI] -->
  <xs:simpleType name="ViewBoxSpec">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'viewBox' attribute specification -->
  <!--
    ==============================================================
    ENTITY DECLARATIONS: Collections of common attributes 
    ==============================================================
  -->
  <!-- All elements have an ID. -->
  <xs:attributeGroup name="stdAttrs">
    <xs:attribute name="id" type="xs:ID"/>
    <xs:attribute ref="xml:base"/>
  </xs:attributeGroup>
  <!-- Common attributes for elements that might contain character data content. -->
  <xs:attributeGroup name="langSpaceAttrs">
    <xs:attribute ref="xml:lang"/>
    <xs:attributeGroup ref="xml:space"/>
  </xs:attributeGroup>
  <!-- Common attributes to check for system capabilities. -->
  <xs:attributeGroup name="testAttrs">
    <xs:attribute name="requiredFeatures" type="svg:FeatureList"/>
    <xs:attribute name="requiredExtensions" type="svg:ExtensionList"/>
    <xs:attribute name="systemLanguage" type="svg:LanguageCodes"/>
  </xs:attributeGroup>
  <!--
    For most uses of URI referencing:
    standard XLink attributes other than xlink:href.
  -->
  <xs:attributeGroup name="xlinkRefAttrs">
    <xs:attribute ref="xlink:type" default="simple"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attribute ref="xlink:title"/>
    <xs:attributeGroup ref="xlink:show"/>
    <xs:attributeGroup ref="xlink:actuate"/>
  </xs:attributeGroup>
  <!-- Standard XLink attributes for uses of URI referencing where xlink:show is 'embed' -->
  <xs:attributeGroup name="xlinkRefAttrsEmbed">
    <xs:attribute ref="xlink:type" default="simple"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attribute ref="xlink:title"/>
    <xs:attributeGroup ref="xlink:show1"/>
    <xs:attributeGroup ref="xlink:actuate"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="graphicsElementEvents">
    <xs:attribute name="onfocusin" type="svg:Script"/>
    <xs:attribute name="onfocusout" type="svg:Script"/>
    <xs:attribute name="onactivate" type="svg:Script"/>
    <xs:attribute name="onclick" type="svg:Script"/>
    <xs:attribute name="onmousedown" type="svg:Script"/>
    <xs:attribute name="onmouseup" type="svg:Script"/>
    <xs:attribute name="onmouseover" type="svg:Script"/>
    <xs:attribute name="onmousemove" type="svg:Script"/>
    <xs:attribute name="onmouseout" type="svg:Script"/>
    <xs:attribute name="onload" type="svg:Script"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="documentEvents">
    <xs:attribute name="onunload" type="svg:Script"/>
    <xs:attribute name="onabort" type="svg:Script"/>
    <xs:attribute name="onerror" type="svg:Script"/>
    <xs:attribute name="onresize" type="svg:Script"/>
    <xs:attribute name="onscroll" type="svg:Script"/>
    <xs:attribute name="onzoom" type="svg:Script"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="animationEvents">
    <xs:attribute name="onbegin" type="svg:Script"/>
    <xs:attribute name="onend" type="svg:Script"/>
    <xs:attribute name="onrepeat" type="svg:Script"/>
  </xs:attributeGroup>
  <!--
    This entity allows for at most one of desc, title and metadata,
    supplied in any order
  -->
  <xs:complexType name="descTitleMetadata">
    <xs:choice minOccurs="0">
      <xs:sequence>
        <xs:element ref="svg:desc"/>
        <xs:choice minOccurs="0">
          <xs:sequence>
            <xs:element ref="svg:title"/>
            <xs:element minOccurs="0" ref="svg:metadata"/>
          </xs:sequence>
          <xs:sequence>
            <xs:element ref="svg:metadata"/>
            <xs:element minOccurs="0" ref="svg:title"/>
          </xs:sequence>
        </xs:choice>
      </xs:sequence>
      <xs:sequence>
        <xs:element ref="svg:title"/>
        <xs:choice minOccurs="0">
          <xs:sequence>
            <xs:element ref="svg:desc"/>
            <xs:element minOccurs="0" ref="svg:metadata"/>
          </xs:sequence>
          <xs:sequence>
            <xs:element ref="svg:metadata"/>
            <xs:element minOccurs="0" ref="svg:desc"/>
          </xs:sequence>
        </xs:choice>
      </xs:sequence>
      <xs:sequence>
        <xs:element ref="svg:metadata"/>
        <xs:choice minOccurs="0">
          <xs:sequence>
            <xs:element ref="svg:desc"/>
            <xs:element minOccurs="0" ref="svg:title"/>
          </xs:sequence>
          <xs:sequence>
            <xs:element ref="svg:title"/>
            <xs:element minOccurs="0" ref="svg:desc"/>
          </xs:sequence>
        </xs:choice>
      </xs:sequence>
    </xs:choice>
  </xs:complexType>
  <!--
    ==============================================================
    ENTITY DECLARATIONS: Collections of presentation attributes 
    ==============================================================
  -->
  <!-- The following presentation attributes have to do with specifying color. -->
  <xs:attributeGroup name="PresentationAttributes-Color">
    <xs:attribute name="color" type="svg:Color"/>
    <xs:attribute name="color-interpolation">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="sRGB"/>
          <xs:enumeration value="linearRGB"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="color-rendering">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="optimizeSpeed"/>
          <xs:enumeration value="optimizeQuality"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- The following presentation attributes apply to container elements. -->
  <xs:attributeGroup name="PresentationAttributes-Containers">
    <xs:attribute name="enable-background" type="svg:EnableBackgroundValue"/>
  </xs:attributeGroup>
  <!-- The following presentation attributes apply to 'feFlood' elements. -->
  <xs:attributeGroup name="PresentationAttributes-feFlood">
    <xs:attribute name="flood-color" type="svg:SVGColor"/>
    <xs:attribute name="flood-opacity" type="svg:OpacityValue"/>
  </xs:attributeGroup>
  <!-- The following presentation attributes apply to filling and stroking operations. -->
  <xs:attributeGroup name="PresentationAttributes-FillStroke">
    <xs:attribute name="fill" type="svg:Paint"/>
    <xs:attribute name="fill-opacity" type="svg:OpacityValue"/>
    <xs:attribute name="fill-rule" type="svg:ClipFillRule"/>
    <xs:attribute name="stroke" type="svg:Paint"/>
    <xs:attribute name="stroke-dasharray" type="svg:StrokeDashArrayValue"/>
    <xs:attribute name="stroke-dashoffset" type="svg:StrokeDashOffsetValue"/>
    <xs:attribute name="stroke-linecap">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="butt"/>
          <xs:enumeration value="round"/>
          <xs:enumeration value="square"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="stroke-linejoin">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="miter"/>
          <xs:enumeration value="round"/>
          <xs:enumeration value="bevel"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="stroke-miterlimit" type="svg:StrokeMiterLimitValue"/>
    <xs:attribute name="stroke-opacity" type="svg:OpacityValue"/>
    <xs:attribute name="stroke-width" type="svg:StrokeWidthValue"/>
  </xs:attributeGroup>
  <!-- The following presentation attributes apply to filter primitives. -->
  <xs:attributeGroup name="PresentationAttributes-FilterPrimitives">
    <xs:attribute name="color-interpolation-filters">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="sRGB"/>
          <xs:enumeration value="linearRGB"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- The following presentation attributes have to do with selecting a font to use. -->
  <xs:attributeGroup name="PresentationAttributes-FontSpecification">
    <xs:attribute name="font-family" type="svg:FontFamilyValue"/>
    <xs:attribute name="font-size" type="svg:FontSizeValue"/>
    <xs:attribute name="font-size-adjust" type="svg:FontSizeAdjustValue"/>
    <xs:attribute name="font-stretch">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="normal"/>
          <xs:enumeration value="wider"/>
          <xs:enumeration value="narrower"/>
          <xs:enumeration value="ultra-condensed"/>
          <xs:enumeration value="extra-condensed"/>
          <xs:enumeration value="condensed"/>
          <xs:enumeration value="semi-condensed"/>
          <xs:enumeration value="semi-expanded"/>
          <xs:enumeration value="expanded"/>
          <xs:enumeration value="extra-expanded"/>
          <xs:enumeration value="ultra-expanded"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="font-style">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="normal"/>
          <xs:enumeration value="italic"/>
          <xs:enumeration value="oblique"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="font-variant">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="normal"/>
          <xs:enumeration value="small-caps"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="font-weight">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="normal"/>
          <xs:enumeration value="bold"/>
          <xs:enumeration value="bolder"/>
          <xs:enumeration value="lighter"/>
          <xs:enumeration value="100"/>
          <xs:enumeration value="200"/>
          <xs:enumeration value="300"/>
          <xs:enumeration value="400"/>
          <xs:enumeration value="500"/>
          <xs:enumeration value="600"/>
          <xs:enumeration value="700"/>
          <xs:enumeration value="800"/>
          <xs:enumeration value="900"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- The following presentation attributes apply to gradient 'stop' elements. -->
  <xs:attributeGroup name="PresentationAttributes-Gradients">
    <xs:attribute name="stop-color" type="svg:SVGColor"/>
    <xs:attribute name="stop-opacity" type="svg:OpacityValue"/>
  </xs:attributeGroup>
  <!-- The following presentation attributes apply to graphics elements. -->
  <xs:attributeGroup name="PresentationAttributes-Graphics">
    <xs:attribute name="clip-path" type="svg:ClipPathValue"/>
    <xs:attribute name="clip-rule" type="svg:ClipFillRule"/>
    <xs:attribute name="cursor" type="svg:CursorValue"/>
    <xs:attribute name="display">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="inline"/>
          <xs:enumeration value="block"/>
          <xs:enumeration value="list-item"/>
          <xs:enumeration value="run-in"/>
          <xs:enumeration value="compact"/>
          <xs:enumeration value="marker"/>
          <xs:enumeration value="table"/>
          <xs:enumeration value="inline-table"/>
          <xs:enumeration value="table-row-group"/>
          <xs:enumeration value="table-header-group"/>
          <xs:enumeration value="table-footer-group"/>
          <xs:enumeration value="table-row"/>
          <xs:enumeration value="table-column-group"/>
          <xs:enumeration value="table-column"/>
          <xs:enumeration value="table-cell"/>
          <xs:enumeration value="table-caption"/>
          <xs:enumeration value="none"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="filter" type="svg:FilterValue"/>
    <xs:attribute name="image-rendering">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="optimizeSpeed"/>
          <xs:enumeration value="optimizeQuality"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="mask" type="svg:MaskValue"/>
    <xs:attribute name="opacity" type="svg:OpacityValue"/>
    <xs:attribute name="pointer-events">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="visiblePainted"/>
          <xs:enumeration value="visibleFill"/>
          <xs:enumeration value="visibleStroke"/>
          <xs:enumeration value="visible"/>
          <xs:enumeration value="painted"/>
          <xs:enumeration value="fill"/>
          <xs:enumeration value="stroke"/>
          <xs:enumeration value="all"/>
          <xs:enumeration value="none"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="shape-rendering">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="optimizeSpeed"/>
          <xs:enumeration value="crispEdges"/>
          <xs:enumeration value="geometricPrecision"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="text-rendering">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="optimizeSpeed"/>
          <xs:enumeration value="optimizeLegibility"/>
          <xs:enumeration value="geometricPrecision"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="visibility">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="visible"/>
          <xs:enumeration value="hidden"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- The following presentation attributes apply to 'image' elements. -->
  <xs:attributeGroup name="PresentationAttributes-Images">
    <xs:attribute name="color-profile"/>
  </xs:attributeGroup>
  <!-- The following presentation attributes apply to 'feDiffuseLighting' and 'feSpecularLighting' elements. -->
  <xs:attributeGroup name="PresentationAttributes-LightingEffects">
    <xs:attribute name="lighting-color" type="svg:SVGColor"/>
  </xs:attributeGroup>
  <!-- The following presentation attributes apply to marker operations. -->
  <xs:attributeGroup name="PresentationAttributes-Markers">
    <xs:attribute name="marker-start" type="svg:MarkerValue"/>
    <xs:attribute name="marker-mid" type="svg:MarkerValue"/>
    <xs:attribute name="marker-end" type="svg:MarkerValue"/>
  </xs:attributeGroup>
  <!-- The following presentation attributes apply to text content elements. -->
  <xs:attributeGroup name="PresentationAttributes-TextContentElements">
    <xs:attribute name="alignment-baseline">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="baseline"/>
          <xs:enumeration value="top"/>
          <xs:enumeration value="before-edge"/>
          <xs:enumeration value="text-top"/>
          <xs:enumeration value="text-before-edge"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="bottom"/>
          <xs:enumeration value="after-edge"/>
          <xs:enumeration value="text-bottom"/>
          <xs:enumeration value="text-after-edge"/>
          <xs:enumeration value="ideographic"/>
          <xs:enumeration value="lower"/>
          <xs:enumeration value="hanging"/>
          <xs:enumeration value="mathematical"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="baseline-shift" type="svg:BaselineShiftValue"/>
    <xs:attribute name="direction">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="ltr"/>
          <xs:enumeration value="rtl"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="dominant-baseline">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="autosense-script"/>
          <xs:enumeration value="no-change"/>
          <xs:enumeration value="reset"/>
          <xs:enumeration value="ideographic"/>
          <xs:enumeration value="lower"/>
          <xs:enumeration value="hanging"/>
          <xs:enumeration value="mathematical"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="glyph-orientation-horizontal" type="svg:GlyphOrientationHorizontalValue"/>
    <xs:attribute name="glyph-orientation-vertical" type="svg:GlyphOrientationVerticalValue"/>
    <xs:attribute name="kerning" type="svg:KerningValue"/>
    <xs:attribute name="letter-spacing" type="svg:SpacingValue"/>
    <xs:attribute name="text-anchor">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="start"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="end"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="text-decoration" type="svg:TextDecorationValue"/>
    <xs:attribute name="unicode-bidi">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="normal"/>
          <xs:enumeration value="embed"/>
          <xs:enumeration value="bidi-override"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="word-spacing" type="svg:SpacingValue"/>
  </xs:attributeGroup>
  <!-- The following presentation attributes apply to 'text' elements. -->
  <xs:attributeGroup name="PresentationAttributes-TextElements">
    <xs:attribute name="writing-mode">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="lr-tb"/>
          <xs:enumeration value="rl-tb"/>
          <xs:enumeration value="tb-rl"/>
          <xs:enumeration value="lr"/>
          <xs:enumeration value="rl"/>
          <xs:enumeration value="tb"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- The following presentation attributes apply to elements that establish viewports. -->
  <xs:attributeGroup name="PresentationAttributes-Viewports">
    <xs:attribute name="clip" type="svg:ClipValue"/>
    <xs:attribute name="overflow">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="visible"/>
          <xs:enumeration value="hidden"/>
          <xs:enumeration value="scroll"/>
          <xs:enumeration value="auto"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- The following represents the complete list of presentation attributes. -->
  <xs:attributeGroup name="PresentationAttributes-All">
    <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
    <xs:attributeGroup ref="svg:PresentationAttributes-Containers"/>
    <xs:attributeGroup ref="svg:PresentationAttributes-feFlood"/>
    <xs:attributeGroup ref="svg:PresentationAttributes-FillStroke"/>
    <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
    <xs:attributeGroup ref="svg:PresentationAttributes-FontSpecification"/>
    <xs:attributeGroup ref="svg:PresentationAttributes-Gradients"/>
    <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
    <xs:attributeGroup ref="svg:PresentationAttributes-Images"/>
    <xs:attributeGroup ref="svg:PresentationAttributes-LightingEffects"/>
    <xs:attributeGroup ref="svg:PresentationAttributes-Markers"/>
    <xs:attributeGroup ref="svg:PresentationAttributes-TextContentElements"/>
    <xs:attributeGroup ref="svg:PresentationAttributes-TextElements"/>
    <xs:attributeGroup ref="svg:PresentationAttributes-Viewports"/>
  </xs:attributeGroup>
  <!--
    ==============================================================
    ENTITY DECLARATIONS: DTD extensions 
    ==============================================================
  -->
  <!--
    Allow for extending the DTD with internal subset for 
    container and graphics elements
  -->
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Document Structure 
    ==============================================================
  -->
  <xs:element name="svg">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:desc"/>
        <xs:element ref="svg:title"/>
        <xs:element ref="svg:metadata"/>
        <xs:element ref="svg:defs"/>
        <xs:element ref="svg:path"/>
        <xs:element ref="svg:text"/>
        <xs:element ref="svg:rect"/>
        <xs:element ref="svg:circle"/>
        <xs:element ref="svg:ellipse"/>
        <xs:element ref="svg:line"/>
        <xs:element ref="svg:polyline"/>
        <xs:element ref="svg:polygon"/>
        <xs:element ref="svg:use"/>
        <xs:element ref="svg:image"/>
        <xs:element ref="svg:svg"/>
        <xs:element ref="svg:g"/>
        <xs:element ref="svg:view"/>
        <xs:element ref="svg:switch"/>
        <xs:element ref="svg:a"/>
        <xs:element ref="svg:altGlyphDef"/>
        <xs:element ref="svg:script"/>
        <xs:element ref="svg:style"/>
        <xs:element ref="svg:symbol"/>
        <xs:element ref="svg:marker"/>
        <xs:element ref="svg:clipPath"/>
        <xs:element ref="svg:mask"/>
        <xs:element ref="svg:linearGradient"/>
        <xs:element ref="svg:radialGradient"/>
        <xs:element ref="svg:pattern"/>
        <xs:element ref="svg:filter"/>
        <xs:element ref="svg:cursor"/>
        <xs:element ref="svg:font"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateMotion"/>
        <xs:element ref="svg:animateColor"/>
        <xs:element ref="svg:animateTransform"/>
        <xs:element ref="svg:color-profile"/>
        <xs:element ref="svg:font-face"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:testAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
      <xs:attribute name="viewBox" type="svg:ViewBoxSpec"/>
      <xs:attribute name="preserveAspectRatio" default="xMidYMid meet" type="svg:PreserveAspectRatioSpec"/>
      <xs:attribute name="zoomAndPan" default="magnify">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="disable"/>
            <xs:enumeration value="magnify"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attributeGroup ref="svg:graphicsElementEvents"/>
      <xs:attributeGroup ref="svg:documentEvents"/>
      <xs:attribute name="version" default="1.0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="1.0"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="x" type="svg:Coordinate"/>
      <xs:attribute name="y" type="svg:Coordinate"/>
      <xs:attribute name="width" type="svg:Length"/>
      <xs:attribute name="height" type="svg:Length"/>
      <xs:attribute name="contentScriptType" default="text/ecmascript" type="svg:ContentType"/>
      <xs:attribute name="contentStyleType" default="text/css" type="svg:ContentType"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="g">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:desc"/>
        <xs:element ref="svg:title"/>
        <xs:element ref="svg:metadata"/>
        <xs:element ref="svg:defs"/>
        <xs:element ref="svg:path"/>
        <xs:element ref="svg:text"/>
        <xs:element ref="svg:rect"/>
        <xs:element ref="svg:circle"/>
        <xs:element ref="svg:ellipse"/>
        <xs:element ref="svg:line"/>
        <xs:element ref="svg:polyline"/>
        <xs:element ref="svg:polygon"/>
        <xs:element ref="svg:use"/>
        <xs:element ref="svg:image"/>
        <xs:element ref="svg:svg"/>
        <xs:element ref="svg:g"/>
        <xs:element ref="svg:view"/>
        <xs:element ref="svg:switch"/>
        <xs:element ref="svg:a"/>
        <xs:element ref="svg:altGlyphDef"/>
        <xs:element ref="svg:script"/>
        <xs:element ref="svg:style"/>
        <xs:element ref="svg:symbol"/>
        <xs:element ref="svg:marker"/>
        <xs:element ref="svg:clipPath"/>
        <xs:element ref="svg:mask"/>
        <xs:element ref="svg:linearGradient"/>
        <xs:element ref="svg:radialGradient"/>
        <xs:element ref="svg:pattern"/>
        <xs:element ref="svg:filter"/>
        <xs:element ref="svg:cursor"/>
        <xs:element ref="svg:font"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateMotion"/>
        <xs:element ref="svg:animateColor"/>
        <xs:element ref="svg:animateTransform"/>
        <xs:element ref="svg:color-profile"/>
        <xs:element ref="svg:font-face"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:testAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
      <xs:attribute name="transform" type="svg:TransformList"/>
      <xs:attributeGroup ref="svg:graphicsElementEvents"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="defs">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:desc"/>
        <xs:element ref="svg:title"/>
        <xs:element ref="svg:metadata"/>
        <xs:element ref="svg:defs"/>
        <xs:element ref="svg:path"/>
        <xs:element ref="svg:text"/>
        <xs:element ref="svg:rect"/>
        <xs:element ref="svg:circle"/>
        <xs:element ref="svg:ellipse"/>
        <xs:element ref="svg:line"/>
        <xs:element ref="svg:polyline"/>
        <xs:element ref="svg:polygon"/>
        <xs:element ref="svg:use"/>
        <xs:element ref="svg:image"/>
        <xs:element ref="svg:svg"/>
        <xs:element ref="svg:g"/>
        <xs:element ref="svg:view"/>
        <xs:element ref="svg:switch"/>
        <xs:element ref="svg:a"/>
        <xs:element ref="svg:altGlyphDef"/>
        <xs:element ref="svg:script"/>
        <xs:element ref="svg:style"/>
        <xs:element ref="svg:symbol"/>
        <xs:element ref="svg:marker"/>
        <xs:element ref="svg:clipPath"/>
        <xs:element ref="svg:mask"/>
        <xs:element ref="svg:linearGradient"/>
        <xs:element ref="svg:radialGradient"/>
        <xs:element ref="svg:pattern"/>
        <xs:element ref="svg:filter"/>
        <xs:element ref="svg:cursor"/>
        <xs:element ref="svg:font"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateMotion"/>
        <xs:element ref="svg:animateColor"/>
        <xs:element ref="svg:animateTransform"/>
        <xs:element ref="svg:color-profile"/>
        <xs:element ref="svg:font-face"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:testAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
      <xs:attribute name="transform" type="svg:TransformList"/>
      <xs:attributeGroup ref="svg:graphicsElementEvents"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="desc">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:StructuredText"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="title">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:StructuredText"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="symbol">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:desc"/>
        <xs:element ref="svg:title"/>
        <xs:element ref="svg:metadata"/>
        <xs:element ref="svg:defs"/>
        <xs:element ref="svg:path"/>
        <xs:element ref="svg:text"/>
        <xs:element ref="svg:rect"/>
        <xs:element ref="svg:circle"/>
        <xs:element ref="svg:ellipse"/>
        <xs:element ref="svg:line"/>
        <xs:element ref="svg:polyline"/>
        <xs:element ref="svg:polygon"/>
        <xs:element ref="svg:use"/>
        <xs:element ref="svg:image"/>
        <xs:element ref="svg:svg"/>
        <xs:element ref="svg:g"/>
        <xs:element ref="svg:view"/>
        <xs:element ref="svg:switch"/>
        <xs:element ref="svg:a"/>
        <xs:element ref="svg:altGlyphDef"/>
        <xs:element ref="svg:script"/>
        <xs:element ref="svg:style"/>
        <xs:element ref="svg:symbol"/>
        <xs:element ref="svg:marker"/>
        <xs:element ref="svg:clipPath"/>
        <xs:element ref="svg:mask"/>
        <xs:element ref="svg:linearGradient"/>
        <xs:element ref="svg:radialGradient"/>
        <xs:element ref="svg:pattern"/>
        <xs:element ref="svg:filter"/>
        <xs:element ref="svg:cursor"/>
        <xs:element ref="svg:font"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateMotion"/>
        <xs:element ref="svg:animateColor"/>
        <xs:element ref="svg:animateTransform"/>
        <xs:element ref="svg:color-profile"/>
        <xs:element ref="svg:font-face"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
      <xs:attribute name="viewBox" type="svg:ViewBoxSpec"/>
      <xs:attribute name="preserveAspectRatio" default="xMidYMid meet" type="svg:PreserveAspectRatioSpec"/>
      <xs:attributeGroup ref="svg:graphicsElementEvents"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="use">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="svg:animate"/>
            <xs:element ref="svg:set"/>
            <xs:element ref="svg:animateMotion"/>
            <xs:element ref="svg:animateColor"/>
            <xs:element ref="svg:animateTransform"/>
          </xs:choice>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:xlinkRefAttrsEmbed"/>
          <xs:attribute ref="xlink:href" use="required"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attributeGroup ref="svg:langSpaceAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
          <xs:attribute name="transform" type="svg:TransformList"/>
          <xs:attributeGroup ref="svg:graphicsElementEvents"/>
          <xs:attribute name="x" type="svg:Coordinate"/>
          <xs:attribute name="y" type="svg:Coordinate"/>
          <xs:attribute name="width" type="svg:Length"/>
          <xs:attribute name="height" type="svg:Length"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="image">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="svg:animate"/>
            <xs:element ref="svg:set"/>
            <xs:element ref="svg:animateMotion"/>
            <xs:element ref="svg:animateColor"/>
            <xs:element ref="svg:animateTransform"/>
          </xs:choice>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:xlinkRefAttrsEmbed"/>
          <xs:attribute ref="xlink:href" use="required"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attributeGroup ref="svg:langSpaceAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Images"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Viewports"/>
          <xs:attribute name="transform" type="svg:TransformList"/>
          <xs:attribute name="preserveAspectRatio" default="xMidYMid meet" type="svg:PreserveAspectRatioSpec"/>
          <xs:attributeGroup ref="svg:graphicsElementEvents"/>
          <xs:attribute name="x" type="svg:Coordinate"/>
          <xs:attribute name="y" type="svg:Coordinate"/>
          <xs:attribute name="width" use="required" type="svg:Length"/>
          <xs:attribute name="height" use="required" type="svg:Length"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="switch">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="svg:path"/>
            <xs:element ref="svg:text"/>
            <xs:element ref="svg:rect"/>
            <xs:element ref="svg:circle"/>
            <xs:element ref="svg:ellipse"/>
            <xs:element ref="svg:line"/>
            <xs:element ref="svg:polyline"/>
            <xs:element ref="svg:polygon"/>
            <xs:element ref="svg:use"/>
            <xs:element ref="svg:image"/>
            <xs:element ref="svg:svg"/>
            <xs:element ref="svg:g"/>
            <xs:element ref="svg:switch"/>
            <xs:element ref="svg:a"/>
            <xs:element ref="svg:foreignObject"/>
            <xs:element ref="svg:animate"/>
            <xs:element ref="svg:set"/>
            <xs:element ref="svg:animateMotion"/>
            <xs:element ref="svg:animateColor"/>
            <xs:element ref="svg:animateTransform"/>
          </xs:choice>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attributeGroup ref="svg:langSpaceAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
          <xs:attribute name="transform" type="svg:TransformList"/>
          <xs:attributeGroup ref="svg:graphicsElementEvents"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Styling 
    ==============================================================
  -->
  <xs:element name="style">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="xml:space1"/>
      <xs:attribute name="type" use="required" type="svg:ContentType"/>
      <xs:attribute name="media" type="svg:MediaDesc"/>
      <xs:attribute name="title" type="svg:Text"/>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Paths
    ==============================================================
  -->
  <xs:element name="path">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="svg:animate"/>
            <xs:element ref="svg:set"/>
            <xs:element ref="svg:animateMotion"/>
            <xs:element ref="svg:animateColor"/>
            <xs:element ref="svg:animateTransform"/>
          </xs:choice>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attributeGroup ref="svg:langSpaceAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-FillStroke"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Markers"/>
          <xs:attribute name="transform" type="svg:TransformList"/>
          <xs:attributeGroup ref="svg:graphicsElementEvents"/>
          <xs:attribute name="d" use="required" type="svg:PathData"/>
          <xs:attribute name="pathLength" type="svg:Number"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Basic Shapes
    ==============================================================
  -->
  <xs:element name="rect">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="svg:animate"/>
            <xs:element ref="svg:set"/>
            <xs:element ref="svg:animateMotion"/>
            <xs:element ref="svg:animateColor"/>
            <xs:element ref="svg:animateTransform"/>
          </xs:choice>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attributeGroup ref="svg:langSpaceAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-FillStroke"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
          <xs:attribute name="transform" type="svg:TransformList"/>
          <xs:attributeGroup ref="svg:graphicsElementEvents"/>
          <xs:attribute name="x" type="svg:Coordinate"/>
          <xs:attribute name="y" type="svg:Coordinate"/>
          <xs:attribute name="width" use="required" type="svg:Length"/>
          <xs:attribute name="height" use="required" type="svg:Length"/>
          <xs:attribute name="rx" type="svg:Length"/>
          <xs:attribute name="ry" type="svg:Length"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="circle">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="svg:animate"/>
            <xs:element ref="svg:set"/>
            <xs:element ref="svg:animateMotion"/>
            <xs:element ref="svg:animateColor"/>
            <xs:element ref="svg:animateTransform"/>
          </xs:choice>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attributeGroup ref="svg:langSpaceAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-FillStroke"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
          <xs:attribute name="transform" type="svg:TransformList"/>
          <xs:attributeGroup ref="svg:graphicsElementEvents"/>
          <xs:attribute name="cx" type="svg:Coordinate"/>
          <xs:attribute name="cy" type="svg:Coordinate"/>
          <xs:attribute name="r" use="required" type="svg:Length"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="ellipse">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="svg:animate"/>
            <xs:element ref="svg:set"/>
            <xs:element ref="svg:animateMotion"/>
            <xs:element ref="svg:animateColor"/>
            <xs:element ref="svg:animateTransform"/>
          </xs:choice>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attributeGroup ref="svg:langSpaceAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-FillStroke"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
          <xs:attribute name="transform" type="svg:TransformList"/>
          <xs:attributeGroup ref="svg:graphicsElementEvents"/>
          <xs:attribute name="cx" type="svg:Coordinate"/>
          <xs:attribute name="cy" type="svg:Coordinate"/>
          <xs:attribute name="rx" use="required" type="svg:Length"/>
          <xs:attribute name="ry" use="required" type="svg:Length"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="line">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="svg:animate"/>
            <xs:element ref="svg:set"/>
            <xs:element ref="svg:animateMotion"/>
            <xs:element ref="svg:animateColor"/>
            <xs:element ref="svg:animateTransform"/>
          </xs:choice>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attributeGroup ref="svg:langSpaceAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-FillStroke"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Markers"/>
          <xs:attribute name="transform" type="svg:TransformList"/>
          <xs:attributeGroup ref="svg:graphicsElementEvents"/>
          <xs:attribute name="x1" type="svg:Coordinate"/>
          <xs:attribute name="y1" type="svg:Coordinate"/>
          <xs:attribute name="x2" type="svg:Coordinate"/>
          <xs:attribute name="y2" type="svg:Coordinate"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="polyline">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="svg:animate"/>
            <xs:element ref="svg:set"/>
            <xs:element ref="svg:animateMotion"/>
            <xs:element ref="svg:animateColor"/>
            <xs:element ref="svg:animateTransform"/>
          </xs:choice>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attributeGroup ref="svg:langSpaceAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-FillStroke"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Markers"/>
          <xs:attribute name="transform" type="svg:TransformList"/>
          <xs:attributeGroup ref="svg:graphicsElementEvents"/>
          <xs:attribute name="points" use="required" type="svg:Points"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="polygon">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="svg:animate"/>
            <xs:element ref="svg:set"/>
            <xs:element ref="svg:animateMotion"/>
            <xs:element ref="svg:animateColor"/>
            <xs:element ref="svg:animateTransform"/>
          </xs:choice>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attributeGroup ref="svg:langSpaceAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-FillStroke"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Markers"/>
          <xs:attribute name="transform" type="svg:TransformList"/>
          <xs:attributeGroup ref="svg:graphicsElementEvents"/>
          <xs:attribute name="points" use="required" type="svg:Points"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Text
    ==============================================================
  -->
  <xs:element name="text">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:desc"/>
        <xs:element ref="svg:title"/>
        <xs:element ref="svg:metadata"/>
        <xs:element ref="svg:tspan"/>
        <xs:element ref="svg:tref"/>
        <xs:element ref="svg:textPath"/>
        <xs:element ref="svg:altGlyph"/>
        <xs:element ref="svg:a"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateMotion"/>
        <xs:element ref="svg:animateColor"/>
        <xs:element ref="svg:animateTransform"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:testAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FillStroke"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FontSpecification"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-TextContentElements"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-TextElements"/>
      <xs:attribute name="transform" type="svg:TransformList"/>
      <xs:attributeGroup ref="svg:graphicsElementEvents"/>
      <xs:attribute name="x" type="svg:Coordinates"/>
      <xs:attribute name="y" type="svg:Coordinates"/>
      <xs:attribute name="dx" type="svg:Lengths"/>
      <xs:attribute name="dy" type="svg:Lengths"/>
      <xs:attribute name="rotate" type="svg:Numbers"/>
      <xs:attribute name="textLength" type="svg:Length"/>
      <xs:attribute name="lengthAdjust">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="spacing"/>
            <xs:enumeration value="spacingAndGlyphs"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="tspan">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:desc"/>
        <xs:element ref="svg:title"/>
        <xs:element ref="svg:metadata"/>
        <xs:element ref="svg:tspan"/>
        <xs:element ref="svg:tref"/>
        <xs:element ref="svg:altGlyph"/>
        <xs:element ref="svg:a"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateColor"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:testAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FillStroke"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FontSpecification"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-TextContentElements"/>
      <xs:attributeGroup ref="svg:graphicsElementEvents"/>
      <xs:attribute name="x" type="svg:Coordinates"/>
      <xs:attribute name="y" type="svg:Coordinates"/>
      <xs:attribute name="dx" type="svg:Lengths"/>
      <xs:attribute name="dy" type="svg:Lengths"/>
      <xs:attribute name="rotate" type="svg:Numbers"/>
      <xs:attribute name="textLength" type="svg:Length"/>
      <xs:attribute name="lengthAdjust">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="spacing"/>
            <xs:enumeration value="spacingAndGlyphs"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="tref">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:desc"/>
        <xs:element ref="svg:title"/>
        <xs:element ref="svg:metadata"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateColor"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
      <xs:attribute ref="xlink:href" use="required"/>
      <xs:attributeGroup ref="svg:testAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FillStroke"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FontSpecification"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-TextContentElements"/>
      <xs:attributeGroup ref="svg:graphicsElementEvents"/>
      <xs:attribute name="x" type="svg:Coordinates"/>
      <xs:attribute name="y" type="svg:Coordinates"/>
      <xs:attribute name="dx" type="svg:Lengths"/>
      <xs:attribute name="dy" type="svg:Lengths"/>
      <xs:attribute name="rotate" type="svg:Numbers"/>
      <xs:attribute name="textLength" type="svg:Length"/>
      <xs:attribute name="lengthAdjust">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="spacing"/>
            <xs:enumeration value="spacingAndGlyphs"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="textPath">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:desc"/>
        <xs:element ref="svg:title"/>
        <xs:element ref="svg:metadata"/>
        <xs:element ref="svg:tspan"/>
        <xs:element ref="svg:tref"/>
        <xs:element ref="svg:altGlyph"/>
        <xs:element ref="svg:a"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateColor"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
      <xs:attribute ref="xlink:href" use="required"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attributeGroup ref="svg:testAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FillStroke"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FontSpecification"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-TextContentElements"/>
      <xs:attributeGroup ref="svg:graphicsElementEvents"/>
      <xs:attribute name="startOffset" type="svg:Length"/>
      <xs:attribute name="textLength" type="svg:Length"/>
      <xs:attribute name="lengthAdjust">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="spacing"/>
            <xs:enumeration value="spacingAndGlyphs"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="method">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="align"/>
            <xs:enumeration value="stretch"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="spacing">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="auto"/>
            <xs:enumeration value="exact"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="altGlyph">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
      <xs:attribute ref="xlink:href"/>
      <xs:attribute name="glyphRef"/>
      <xs:attribute name="format"/>
      <xs:attributeGroup ref="svg:testAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FillStroke"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FontSpecification"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-TextContentElements"/>
      <xs:attributeGroup ref="svg:graphicsElementEvents"/>
      <xs:attribute name="x" type="svg:Coordinates"/>
      <xs:attribute name="y" type="svg:Coordinates"/>
      <xs:attribute name="dx" type="svg:Lengths"/>
      <xs:attribute name="dy" type="svg:Lengths"/>
      <xs:attribute name="rotate" type="svg:Numbers"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="altGlyphDef">
    <xs:complexType>
      <xs:choice>
        <xs:element maxOccurs="unbounded" ref="svg:glyphRef"/>
        <xs:element maxOccurs="unbounded" ref="svg:altGlyphItem"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="altGlyphItem">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="svg:glyphRef"/>
      </xs:sequence>
      <xs:attributeGroup ref="svg:stdAttrs"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="glyphRef">
    <xs:complexType>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
      <xs:attribute ref="xlink:href"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FontSpecification"/>
      <xs:attribute name="glyphRef"/>
      <xs:attribute name="format"/>
      <xs:attribute name="x" type="svg:Number"/>
      <xs:attribute name="y" type="svg:Number"/>
      <xs:attribute name="dx" type="svg:Number"/>
      <xs:attribute name="dy" type="svg:Number"/>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Painting: Filling, Stroking and Marker Symbols 
    ==============================================================
  -->
  <xs:element name="marker">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:desc"/>
        <xs:element ref="svg:title"/>
        <xs:element ref="svg:metadata"/>
        <xs:element ref="svg:defs"/>
        <xs:element ref="svg:path"/>
        <xs:element ref="svg:text"/>
        <xs:element ref="svg:rect"/>
        <xs:element ref="svg:circle"/>
        <xs:element ref="svg:ellipse"/>
        <xs:element ref="svg:line"/>
        <xs:element ref="svg:polyline"/>
        <xs:element ref="svg:polygon"/>
        <xs:element ref="svg:use"/>
        <xs:element ref="svg:image"/>
        <xs:element ref="svg:svg"/>
        <xs:element ref="svg:g"/>
        <xs:element ref="svg:view"/>
        <xs:element ref="svg:switch"/>
        <xs:element ref="svg:a"/>
        <xs:element ref="svg:altGlyphDef"/>
        <xs:element ref="svg:script"/>
        <xs:element ref="svg:style"/>
        <xs:element ref="svg:symbol"/>
        <xs:element ref="svg:marker"/>
        <xs:element ref="svg:clipPath"/>
        <xs:element ref="svg:mask"/>
        <xs:element ref="svg:linearGradient"/>
        <xs:element ref="svg:radialGradient"/>
        <xs:element ref="svg:pattern"/>
        <xs:element ref="svg:filter"/>
        <xs:element ref="svg:cursor"/>
        <xs:element ref="svg:font"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateMotion"/>
        <xs:element ref="svg:animateColor"/>
        <xs:element ref="svg:animateTransform"/>
        <xs:element ref="svg:color-profile"/>
        <xs:element ref="svg:font-face"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
      <xs:attribute name="viewBox" type="svg:ViewBoxSpec"/>
      <xs:attribute name="preserveAspectRatio" default="xMidYMid meet" type="svg:PreserveAspectRatioSpec"/>
      <xs:attribute name="refX" type="svg:Coordinate"/>
      <xs:attribute name="refY" type="svg:Coordinate"/>
      <xs:attribute name="markerUnits">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="strokeWidth"/>
            <xs:enumeration value="userSpaceOnUse"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="markerWidth" type="svg:Length"/>
      <xs:attribute name="markerHeight" type="svg:Length"/>
      <xs:attribute name="orient"/>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Color 
    ==============================================================
  -->
  <xs:element name="color-profile">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
          <xs:attribute ref="xlink:href"/>
          <xs:attribute name="local"/>
          <xs:attribute name="name" use="required"/>
          <xs:attribute name="rendering-intent" default="auto">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="auto"/>
                <xs:enumeration value="perceptual"/>
                <xs:enumeration value="relative-colorimetric"/>
                <xs:enumeration value="saturation"/>
                <xs:enumeration value="absolute-colorimetric"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Gradients and Patterns 
    ==============================================================
  -->
  <xs:element name="linearGradient">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="svg:stop"/>
            <xs:element ref="svg:animate"/>
            <xs:element ref="svg:set"/>
            <xs:element ref="svg:animateTransform"/>
          </xs:choice>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
          <xs:attribute ref="xlink:href"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Gradients"/>
          <xs:attribute name="gradientUnits">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="userSpaceOnUse"/>
                <xs:enumeration value="objectBoundingBox"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="gradientTransform" type="svg:TransformList"/>
          <xs:attribute name="x1" type="svg:Coordinate"/>
          <xs:attribute name="y1" type="svg:Coordinate"/>
          <xs:attribute name="x2" type="svg:Coordinate"/>
          <xs:attribute name="y2" type="svg:Coordinate"/>
          <xs:attribute name="spreadMethod">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="pad"/>
                <xs:enumeration value="reflect"/>
                <xs:enumeration value="repeat"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="radialGradient">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="svg:stop"/>
            <xs:element ref="svg:animate"/>
            <xs:element ref="svg:set"/>
            <xs:element ref="svg:animateTransform"/>
          </xs:choice>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
          <xs:attribute ref="xlink:href"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Gradients"/>
          <xs:attribute name="gradientUnits">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="userSpaceOnUse"/>
                <xs:enumeration value="objectBoundingBox"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="gradientTransform" type="svg:TransformList"/>
          <xs:attribute name="cx" type="svg:Coordinate"/>
          <xs:attribute name="cy" type="svg:Coordinate"/>
          <xs:attribute name="r" type="svg:Length"/>
          <xs:attribute name="fx" type="svg:Coordinate"/>
          <xs:attribute name="fy" type="svg:Coordinate"/>
          <xs:attribute name="spreadMethod">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="pad"/>
                <xs:enumeration value="reflect"/>
                <xs:enumeration value="repeat"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="stop">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateColor"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Gradients"/>
      <xs:attribute name="offset" use="required" type="svg:NumberOrPercentage"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="pattern">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:desc"/>
        <xs:element ref="svg:title"/>
        <xs:element ref="svg:metadata"/>
        <xs:element ref="svg:defs"/>
        <xs:element ref="svg:path"/>
        <xs:element ref="svg:text"/>
        <xs:element ref="svg:rect"/>
        <xs:element ref="svg:circle"/>
        <xs:element ref="svg:ellipse"/>
        <xs:element ref="svg:line"/>
        <xs:element ref="svg:polyline"/>
        <xs:element ref="svg:polygon"/>
        <xs:element ref="svg:use"/>
        <xs:element ref="svg:image"/>
        <xs:element ref="svg:svg"/>
        <xs:element ref="svg:g"/>
        <xs:element ref="svg:view"/>
        <xs:element ref="svg:switch"/>
        <xs:element ref="svg:a"/>
        <xs:element ref="svg:altGlyphDef"/>
        <xs:element ref="svg:script"/>
        <xs:element ref="svg:style"/>
        <xs:element ref="svg:symbol"/>
        <xs:element ref="svg:marker"/>
        <xs:element ref="svg:clipPath"/>
        <xs:element ref="svg:mask"/>
        <xs:element ref="svg:linearGradient"/>
        <xs:element ref="svg:radialGradient"/>
        <xs:element ref="svg:pattern"/>
        <xs:element ref="svg:filter"/>
        <xs:element ref="svg:cursor"/>
        <xs:element ref="svg:font"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateMotion"/>
        <xs:element ref="svg:animateColor"/>
        <xs:element ref="svg:animateTransform"/>
        <xs:element ref="svg:color-profile"/>
        <xs:element ref="svg:font-face"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
      <xs:attribute ref="xlink:href"/>
      <xs:attributeGroup ref="svg:testAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
      <xs:attribute name="viewBox" type="svg:ViewBoxSpec"/>
      <xs:attribute name="preserveAspectRatio" default="xMidYMid meet" type="svg:PreserveAspectRatioSpec"/>
      <xs:attribute name="patternUnits">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="userSpaceOnUse"/>
            <xs:enumeration value="objectBoundingBox"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="patternContentUnits">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="userSpaceOnUse"/>
            <xs:enumeration value="objectBoundingBox"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="patternTransform" type="svg:TransformList"/>
      <xs:attribute name="x" type="svg:Coordinate"/>
      <xs:attribute name="y" type="svg:Coordinate"/>
      <xs:attribute name="width" type="svg:Length"/>
      <xs:attribute name="height" type="svg:Length"/>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Clipping, Masking and Compositing 
    ==============================================================
  -->
  <xs:element name="clipPath">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="svg:path"/>
            <xs:element ref="svg:text"/>
            <xs:element ref="svg:rect"/>
            <xs:element ref="svg:circle"/>
            <xs:element ref="svg:ellipse"/>
            <xs:element ref="svg:line"/>
            <xs:element ref="svg:polyline"/>
            <xs:element ref="svg:polygon"/>
            <xs:element ref="svg:use"/>
            <xs:element ref="svg:animate"/>
            <xs:element ref="svg:set"/>
            <xs:element ref="svg:animateMotion"/>
            <xs:element ref="svg:animateColor"/>
            <xs:element ref="svg:animateTransform"/>
          </xs:choice>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attributeGroup ref="svg:langSpaceAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-FillStroke"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-FontSpecification"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-Graphics"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-TextContentElements"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-TextElements"/>
          <xs:attribute name="transform" type="svg:TransformList"/>
          <xs:attribute name="clipPathUnits">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="userSpaceOnUse"/>
                <xs:enumeration value="objectBoundingBox"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="mask">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:desc"/>
        <xs:element ref="svg:title"/>
        <xs:element ref="svg:metadata"/>
        <xs:element ref="svg:defs"/>
        <xs:element ref="svg:path"/>
        <xs:element ref="svg:text"/>
        <xs:element ref="svg:rect"/>
        <xs:element ref="svg:circle"/>
        <xs:element ref="svg:ellipse"/>
        <xs:element ref="svg:line"/>
        <xs:element ref="svg:polyline"/>
        <xs:element ref="svg:polygon"/>
        <xs:element ref="svg:use"/>
        <xs:element ref="svg:image"/>
        <xs:element ref="svg:svg"/>
        <xs:element ref="svg:g"/>
        <xs:element ref="svg:view"/>
        <xs:element ref="svg:switch"/>
        <xs:element ref="svg:a"/>
        <xs:element ref="svg:altGlyphDef"/>
        <xs:element ref="svg:script"/>
        <xs:element ref="svg:style"/>
        <xs:element ref="svg:symbol"/>
        <xs:element ref="svg:marker"/>
        <xs:element ref="svg:clipPath"/>
        <xs:element ref="svg:mask"/>
        <xs:element ref="svg:linearGradient"/>
        <xs:element ref="svg:radialGradient"/>
        <xs:element ref="svg:pattern"/>
        <xs:element ref="svg:filter"/>
        <xs:element ref="svg:cursor"/>
        <xs:element ref="svg:font"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateMotion"/>
        <xs:element ref="svg:animateColor"/>
        <xs:element ref="svg:animateTransform"/>
        <xs:element ref="svg:color-profile"/>
        <xs:element ref="svg:font-face"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:testAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
      <xs:attribute name="maskUnits">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="userSpaceOnUse"/>
            <xs:enumeration value="objectBoundingBox"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="maskContentUnits">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="userSpaceOnUse"/>
            <xs:enumeration value="objectBoundingBox"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="x" type="svg:Coordinate"/>
      <xs:attribute name="y" type="svg:Coordinate"/>
      <xs:attribute name="width" type="svg:Length"/>
      <xs:attribute name="height" type="svg:Length"/>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Filter Effects
    ==============================================================
  -->
  <xs:element name="filter">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="svg:feBlend"/>
            <xs:element ref="svg:feFlood"/>
            <xs:element ref="svg:feColorMatrix"/>
            <xs:element ref="svg:feComponentTransfer"/>
            <xs:element ref="svg:feComposite"/>
            <xs:element ref="svg:feConvolveMatrix"/>
            <xs:element ref="svg:feDiffuseLighting"/>
            <xs:element ref="svg:feDisplacementMap"/>
            <xs:element ref="svg:feGaussianBlur"/>
            <xs:element ref="svg:feImage"/>
            <xs:element ref="svg:feMerge"/>
            <xs:element ref="svg:feMorphology"/>
            <xs:element ref="svg:feOffset"/>
            <xs:element ref="svg:feSpecularLighting"/>
            <xs:element ref="svg:feTile"/>
            <xs:element ref="svg:feTurbulence"/>
            <xs:element ref="svg:animate"/>
            <xs:element ref="svg:set"/>
          </xs:choice>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
          <xs:attribute ref="xlink:href"/>
          <xs:attributeGroup ref="svg:langSpaceAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
          <xs:attribute name="filterUnits">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="userSpaceOnUse"/>
                <xs:enumeration value="objectBoundingBox"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="primitiveUnits">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="userSpaceOnUse"/>
                <xs:enumeration value="objectBoundingBox"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="x" type="svg:Coordinate"/>
          <xs:attribute name="y" type="svg:Coordinate"/>
          <xs:attribute name="width" type="svg:Length"/>
          <xs:attribute name="height" type="svg:Length"/>
          <xs:attribute name="filterRes" type="svg:NumberOptionalNumber"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="filter_primitive_attributes">
    <xs:attribute name="x" type="svg:Coordinate"/>
    <xs:attribute name="y" type="svg:Coordinate"/>
    <xs:attribute name="width" type="svg:Length"/>
    <xs:attribute name="height" type="svg:Length"/>
    <xs:attribute name="result"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="filter_primitive_attributes_with_in">
    <xs:attributeGroup ref="svg:filter_primitive_attributes"/>
    <xs:attribute name="in"/>
  </xs:attributeGroup>
  <xs:element name="feDistantLight">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute name="azimuth" type="svg:Number"/>
      <xs:attribute name="elevation" type="svg:Number"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="fePointLight">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute name="x" type="svg:Number"/>
      <xs:attribute name="y" type="svg:Number"/>
      <xs:attribute name="z" type="svg:Number"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feSpotLight">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute name="x" type="svg:Number"/>
      <xs:attribute name="y" type="svg:Number"/>
      <xs:attribute name="z" type="svg:Number"/>
      <xs:attribute name="pointsAtX" type="svg:Number"/>
      <xs:attribute name="pointsAtY" type="svg:Number"/>
      <xs:attribute name="pointsAtZ" type="svg:Number"/>
      <xs:attribute name="specularExponent" type="svg:Number"/>
      <xs:attribute name="limitingConeAngle" type="svg:Number"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feBlend">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes_with_in"/>
      <xs:attribute name="in2" use="required"/>
      <xs:attribute name="mode" default="normal">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="normal"/>
            <xs:enumeration value="multiply"/>
            <xs:enumeration value="screen"/>
            <xs:enumeration value="darken"/>
            <xs:enumeration value="lighten"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="feColorMatrix">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes_with_in"/>
      <xs:attribute name="type" default="matrix">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="matrix"/>
            <xs:enumeration value="saturate"/>
            <xs:enumeration value="hueRotate"/>
            <xs:enumeration value="luminanceToAlpha"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="values"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feComponentTransfer">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="svg:feFuncR"/>
        <xs:element minOccurs="0" ref="svg:feFuncG"/>
        <xs:element minOccurs="0" ref="svg:feFuncB"/>
        <xs:element minOccurs="0" ref="svg:feFuncA"/>
      </xs:sequence>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes_with_in"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="component_transfer_function_attributes">
    <xs:attribute name="type" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="identity"/>
          <xs:enumeration value="table"/>
          <xs:enumeration value="discrete"/>
          <xs:enumeration value="linear"/>
          <xs:enumeration value="gamma"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="tableValues"/>
    <xs:attribute name="slope" type="svg:Number"/>
    <xs:attribute name="intercept" type="svg:Number"/>
    <xs:attribute name="amplitude" type="svg:Number"/>
    <xs:attribute name="exponent" type="svg:Number"/>
    <xs:attribute name="offset" type="svg:Number"/>
  </xs:attributeGroup>
  <xs:element name="feFuncR">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:component_transfer_function_attributes"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feFuncG">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:component_transfer_function_attributes"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feFuncB">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:component_transfer_function_attributes"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feFuncA">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:component_transfer_function_attributes"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feComposite">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes_with_in"/>
      <xs:attribute name="in2" use="required"/>
      <xs:attribute name="operator" default="over">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="over"/>
            <xs:enumeration value="in"/>
            <xs:enumeration value="out"/>
            <xs:enumeration value="atop"/>
            <xs:enumeration value="xor"/>
            <xs:enumeration value="arithmetic"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="k1" type="svg:Number"/>
      <xs:attribute name="k2" type="svg:Number"/>
      <xs:attribute name="k3" type="svg:Number"/>
      <xs:attribute name="k4" type="svg:Number"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feConvolveMatrix">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes_with_in"/>
      <xs:attribute name="order" use="required" type="svg:NumberOptionalNumber"/>
      <xs:attribute name="kernelMatrix" use="required"/>
      <xs:attribute name="divisor" type="svg:Number"/>
      <xs:attribute name="bias" type="svg:Number"/>
      <xs:attribute name="targetX" type="svg:Integer"/>
      <xs:attribute name="targetY" type="svg:Integer"/>
      <xs:attribute name="edgeMode" default="duplicate">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="duplicate"/>
            <xs:enumeration value="wrap"/>
            <xs:enumeration value="none"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="kernelUnitLength" type="svg:NumberOptionalNumber"/>
      <xs:attribute name="preserveAlpha" type="svg:Boolean"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feDiffuseLighting">
    <xs:complexType>
      <xs:sequence>
        <xs:choice>
          <xs:element ref="svg:feDistantLight"/>
          <xs:element ref="svg:fePointLight"/>
          <xs:element ref="svg:feSpotLight"/>
        </xs:choice>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="svg:animate"/>
          <xs:element ref="svg:set"/>
          <xs:element ref="svg:animateColor"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-LightingEffects"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes_with_in"/>
      <xs:attribute name="surfaceScale" type="svg:Number"/>
      <xs:attribute name="diffuseConstant" type="svg:Number"/>
      <xs:attribute name="kernelUnitLength" type="svg:NumberOptionalNumber"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feDisplacementMap">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes_with_in"/>
      <xs:attribute name="in2" use="required"/>
      <xs:attribute name="scale" type="svg:Number"/>
      <xs:attribute name="xChannelSelector" default="A">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="R"/>
            <xs:enumeration value="G"/>
            <xs:enumeration value="B"/>
            <xs:enumeration value="A"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="yChannelSelector" default="A">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="R"/>
            <xs:enumeration value="G"/>
            <xs:enumeration value="B"/>
            <xs:enumeration value="A"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="feFlood">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateColor"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-feFlood"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes_with_in"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feGaussianBlur">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes_with_in"/>
      <xs:attribute name="stdDeviation" type="svg:NumberOptionalNumber"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feImage">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateTransform"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:xlinkRefAttrsEmbed"/>
      <xs:attribute ref="xlink:href" use="required"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feMerge">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:feMergeNode"/>
      </xs:sequence>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feMergeNode">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute name="in"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feMorphology">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes_with_in"/>
      <xs:attribute name="operator" default="erode">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="erode"/>
            <xs:enumeration value="dilate"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="radius" type="svg:NumberOptionalNumber"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feOffset">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes_with_in"/>
      <xs:attribute name="dx" type="svg:Number"/>
      <xs:attribute name="dy" type="svg:Number"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feSpecularLighting">
    <xs:complexType>
      <xs:sequence>
        <xs:choice>
          <xs:element ref="svg:feDistantLight"/>
          <xs:element ref="svg:fePointLight"/>
          <xs:element ref="svg:feSpotLight"/>
        </xs:choice>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="svg:animate"/>
          <xs:element ref="svg:set"/>
          <xs:element ref="svg:animateColor"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-Color"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-LightingEffects"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes_with_in"/>
      <xs:attribute name="surfaceScale" type="svg:Number"/>
      <xs:attribute name="specularConstant" type="svg:Number"/>
      <xs:attribute name="specularExponent" type="svg:Number"/>
      <xs:attribute name="kernelUnitLength" type="svg:NumberOptionalNumber"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feTile">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes_with_in"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="feTurbulence">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-FilterPrimitives"/>
      <xs:attributeGroup ref="svg:filter_primitive_attributes"/>
      <xs:attribute name="baseFrequency" type="svg:NumberOptionalNumber"/>
      <xs:attribute name="numOctaves" type="svg:Integer"/>
      <xs:attribute name="seed" type="svg:Number"/>
      <xs:attribute name="stitchTiles" default="noStitch">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="stitch"/>
            <xs:enumeration value="noStitch"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="type" default="turbulence">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="fractalNoise"/>
            <xs:enumeration value="turbulence"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Interactivity 
    ==============================================================
  -->
  <xs:element name="cursor">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
          <xs:attribute ref="xlink:href" use="required"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="x" type="svg:Coordinate"/>
          <xs:attribute name="y" type="svg:Coordinate"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Linking
    ==============================================================
  -->
  <xs:element name="a">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:desc"/>
        <xs:element ref="svg:title"/>
        <xs:element ref="svg:metadata"/>
        <xs:element ref="svg:defs"/>
        <xs:element ref="svg:path"/>
        <xs:element ref="svg:text"/>
        <xs:element ref="svg:rect"/>
        <xs:element ref="svg:circle"/>
        <xs:element ref="svg:ellipse"/>
        <xs:element ref="svg:line"/>
        <xs:element ref="svg:polyline"/>
        <xs:element ref="svg:polygon"/>
        <xs:element ref="svg:use"/>
        <xs:element ref="svg:image"/>
        <xs:element ref="svg:svg"/>
        <xs:element ref="svg:g"/>
        <xs:element ref="svg:view"/>
        <xs:element ref="svg:switch"/>
        <xs:element ref="svg:a"/>
        <xs:element ref="svg:altGlyphDef"/>
        <xs:element ref="svg:script"/>
        <xs:element ref="svg:style"/>
        <xs:element ref="svg:symbol"/>
        <xs:element ref="svg:marker"/>
        <xs:element ref="svg:clipPath"/>
        <xs:element ref="svg:mask"/>
        <xs:element ref="svg:linearGradient"/>
        <xs:element ref="svg:radialGradient"/>
        <xs:element ref="svg:pattern"/>
        <xs:element ref="svg:filter"/>
        <xs:element ref="svg:cursor"/>
        <xs:element ref="svg:font"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateMotion"/>
        <xs:element ref="svg:animateColor"/>
        <xs:element ref="svg:animateTransform"/>
        <xs:element ref="svg:color-profile"/>
        <xs:element ref="svg:font-face"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute ref="xlink:type" default="simple"/>
      <xs:attribute ref="xlink:role"/>
      <xs:attribute ref="xlink:arcrole"/>
      <xs:attribute ref="xlink:title"/>
      <xs:attributeGroup ref="xlink:show2"/>
      <xs:attributeGroup ref="xlink:actuate1"/>
      <xs:attribute ref="xlink:href" use="required"/>
      <xs:attributeGroup ref="svg:testAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
      <xs:attribute name="transform" type="svg:TransformList"/>
      <xs:attributeGroup ref="svg:graphicsElementEvents"/>
      <xs:attribute name="target" type="svg:LinkTarget"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="view">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="viewBox" type="svg:ViewBoxSpec"/>
          <xs:attribute name="preserveAspectRatio" default="xMidYMid meet" type="svg:PreserveAspectRatioSpec"/>
          <xs:attribute name="zoomAndPan" default="magnify">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="disable"/>
                <xs:enumeration value="magnify"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="viewTarget"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Scripting 
    ==============================================================
  -->
  <xs:element name="script">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
      <xs:attribute ref="xlink:href"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="type" use="required" type="svg:ContentType"/>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Animation 
    ==============================================================
  -->
  <xs:attributeGroup name="animElementAttrs">
    <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
    <xs:attribute ref="xlink:href"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="animAttributeAttrs">
    <xs:attribute name="attributeName" use="required"/>
    <xs:attribute name="attributeType"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="animTimingAttrs">
    <xs:attribute name="begin"/>
    <xs:attribute name="dur"/>
    <xs:attribute name="end"/>
    <xs:attribute name="min"/>
    <xs:attribute name="max"/>
    <xs:attribute name="restart" default="always">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="always"/>
          <xs:enumeration value="never"/>
          <xs:enumeration value="whenNotActive"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="repeatCount"/>
    <xs:attribute name="repeatDur"/>
    <xs:attribute name="fill" default="remove">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="remove"/>
          <xs:enumeration value="freeze"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="animValueAttrs">
    <xs:attribute name="calcMode" default="linear">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="discrete"/>
          <xs:enumeration value="linear"/>
          <xs:enumeration value="paced"/>
          <xs:enumeration value="spline"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="values"/>
    <xs:attribute name="keyTimes"/>
    <xs:attribute name="keySplines"/>
    <xs:attribute name="from"/>
    <xs:attribute name="to"/>
    <xs:attribute name="by"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="animAdditionAttrs">
    <xs:attribute name="additive" default="replace">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="replace"/>
          <xs:enumeration value="sum"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="accumulate" default="none">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="none"/>
          <xs:enumeration value="sum"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="animate">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attributeGroup ref="svg:animationEvents"/>
          <xs:attributeGroup ref="svg:animElementAttrs"/>
          <xs:attributeGroup ref="svg:animAttributeAttrs"/>
          <xs:attributeGroup ref="svg:animTimingAttrs"/>
          <xs:attributeGroup ref="svg:animValueAttrs"/>
          <xs:attributeGroup ref="svg:animAdditionAttrs"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="set">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attributeGroup ref="svg:animationEvents"/>
          <xs:attributeGroup ref="svg:animElementAttrs"/>
          <xs:attributeGroup ref="svg:animAttributeAttrs"/>
          <xs:attributeGroup ref="svg:animTimingAttrs"/>
          <xs:attribute name="to"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="animateMotion">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:sequence>
            <xs:element minOccurs="0" ref="svg:mpath"/>
          </xs:sequence>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attributeGroup ref="svg:animationEvents"/>
          <xs:attributeGroup ref="svg:animElementAttrs"/>
          <xs:attributeGroup ref="svg:animTimingAttrs"/>
          <xs:attribute name="calcMode" default="paced">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="discrete"/>
                <xs:enumeration value="linear"/>
                <xs:enumeration value="paced"/>
                <xs:enumeration value="spline"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="values"/>
          <xs:attribute name="keyTimes"/>
          <xs:attribute name="keySplines"/>
          <xs:attribute name="from"/>
          <xs:attribute name="to"/>
          <xs:attribute name="by"/>
          <xs:attributeGroup ref="svg:animAdditionAttrs"/>
          <xs:attribute name="path"/>
          <xs:attribute name="keyPoints"/>
          <xs:attribute name="rotate"/>
          <xs:attribute name="origin"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="mpath">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
          <xs:attribute ref="xlink:href" use="required"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="animateColor">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attributeGroup ref="svg:animationEvents"/>
          <xs:attributeGroup ref="svg:animElementAttrs"/>
          <xs:attributeGroup ref="svg:animAttributeAttrs"/>
          <xs:attributeGroup ref="svg:animTimingAttrs"/>
          <xs:attributeGroup ref="svg:animValueAttrs"/>
          <xs:attributeGroup ref="svg:animAdditionAttrs"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="animateTransform">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attributeGroup ref="svg:testAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attributeGroup ref="svg:animationEvents"/>
          <xs:attributeGroup ref="svg:animElementAttrs"/>
          <xs:attributeGroup ref="svg:animAttributeAttrs"/>
          <xs:attributeGroup ref="svg:animTimingAttrs"/>
          <xs:attributeGroup ref="svg:animValueAttrs"/>
          <xs:attributeGroup ref="svg:animAdditionAttrs"/>
          <xs:attribute name="type" default="translate">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="translate"/>
                <xs:enumeration value="scale"/>
                <xs:enumeration value="rotate"/>
                <xs:enumeration value="skewX"/>
                <xs:enumeration value="skewY"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Fonts 
    ==============================================================
  -->
  <xs:element name="font">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:sequence>
            <xs:element ref="svg:font-face"/>
            <xs:element ref="svg:missing-glyph"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element ref="svg:glyph"/>
              <xs:element ref="svg:hkern"/>
              <xs:element ref="svg:vkern"/>
            </xs:choice>
          </xs:sequence>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
          <xs:attribute name="class" type="svg:ClassList"/>
          <xs:attribute name="style" type="svg:StyleSheet"/>
          <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
          <xs:attribute name="horiz-origin-x" type="svg:Number"/>
          <xs:attribute name="horiz-origin-y" type="svg:Number"/>
          <xs:attribute name="horiz-adv-x" use="required" type="svg:Number"/>
          <xs:attribute name="vert-origin-x" type="svg:Number"/>
          <xs:attribute name="vert-origin-y" type="svg:Number"/>
          <xs:attribute name="vert-adv-y" type="svg:Number"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="glyph">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:desc"/>
        <xs:element ref="svg:title"/>
        <xs:element ref="svg:metadata"/>
        <xs:element ref="svg:defs"/>
        <xs:element ref="svg:path"/>
        <xs:element ref="svg:text"/>
        <xs:element ref="svg:rect"/>
        <xs:element ref="svg:circle"/>
        <xs:element ref="svg:ellipse"/>
        <xs:element ref="svg:line"/>
        <xs:element ref="svg:polyline"/>
        <xs:element ref="svg:polygon"/>
        <xs:element ref="svg:use"/>
        <xs:element ref="svg:image"/>
        <xs:element ref="svg:svg"/>
        <xs:element ref="svg:g"/>
        <xs:element ref="svg:view"/>
        <xs:element ref="svg:switch"/>
        <xs:element ref="svg:a"/>
        <xs:element ref="svg:altGlyphDef"/>
        <xs:element ref="svg:script"/>
        <xs:element ref="svg:style"/>
        <xs:element ref="svg:symbol"/>
        <xs:element ref="svg:marker"/>
        <xs:element ref="svg:clipPath"/>
        <xs:element ref="svg:mask"/>
        <xs:element ref="svg:linearGradient"/>
        <xs:element ref="svg:radialGradient"/>
        <xs:element ref="svg:pattern"/>
        <xs:element ref="svg:filter"/>
        <xs:element ref="svg:cursor"/>
        <xs:element ref="svg:font"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateMotion"/>
        <xs:element ref="svg:animateColor"/>
        <xs:element ref="svg:animateTransform"/>
        <xs:element ref="svg:color-profile"/>
        <xs:element ref="svg:font-face"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
      <xs:attribute name="unicode"/>
      <xs:attribute name="glyph-name"/>
      <xs:attribute name="d" type="svg:PathData"/>
      <xs:attribute name="orientation"/>
      <xs:attribute name="arabic-form"/>
      <xs:attribute name="lang" type="svg:LanguageCodes"/>
      <xs:attribute name="horiz-adv-x" type="svg:Number"/>
      <xs:attribute name="vert-origin-x" type="svg:Number"/>
      <xs:attribute name="vert-origin-y" type="svg:Number"/>
      <xs:attribute name="vert-adv-y" type="svg:Number"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="missing-glyph">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:desc"/>
        <xs:element ref="svg:title"/>
        <xs:element ref="svg:metadata"/>
        <xs:element ref="svg:defs"/>
        <xs:element ref="svg:path"/>
        <xs:element ref="svg:text"/>
        <xs:element ref="svg:rect"/>
        <xs:element ref="svg:circle"/>
        <xs:element ref="svg:ellipse"/>
        <xs:element ref="svg:line"/>
        <xs:element ref="svg:polyline"/>
        <xs:element ref="svg:polygon"/>
        <xs:element ref="svg:use"/>
        <xs:element ref="svg:image"/>
        <xs:element ref="svg:svg"/>
        <xs:element ref="svg:g"/>
        <xs:element ref="svg:view"/>
        <xs:element ref="svg:switch"/>
        <xs:element ref="svg:a"/>
        <xs:element ref="svg:altGlyphDef"/>
        <xs:element ref="svg:script"/>
        <xs:element ref="svg:style"/>
        <xs:element ref="svg:symbol"/>
        <xs:element ref="svg:marker"/>
        <xs:element ref="svg:clipPath"/>
        <xs:element ref="svg:mask"/>
        <xs:element ref="svg:linearGradient"/>
        <xs:element ref="svg:radialGradient"/>
        <xs:element ref="svg:pattern"/>
        <xs:element ref="svg:filter"/>
        <xs:element ref="svg:cursor"/>
        <xs:element ref="svg:font"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateMotion"/>
        <xs:element ref="svg:animateColor"/>
        <xs:element ref="svg:animateTransform"/>
        <xs:element ref="svg:color-profile"/>
        <xs:element ref="svg:font-face"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
      <xs:attribute name="d" type="svg:PathData"/>
      <xs:attribute name="horiz-adv-x" type="svg:Number"/>
      <xs:attribute name="vert-origin-x" type="svg:Number"/>
      <xs:attribute name="vert-origin-y" type="svg:Number"/>
      <xs:attribute name="vert-adv-y" type="svg:Number"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="hkern">
    <xs:complexType>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute name="u1"/>
      <xs:attribute name="g1"/>
      <xs:attribute name="u2"/>
      <xs:attribute name="g2"/>
      <xs:attribute name="k" use="required" type="svg:Number"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="vkern">
    <xs:complexType>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute name="u1"/>
      <xs:attribute name="g1"/>
      <xs:attribute name="u2"/>
      <xs:attribute name="g2"/>
      <xs:attribute name="k" use="required" type="svg:Number"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="font-face">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:descTitleMetadata">
          <xs:sequence>
            <xs:element minOccurs="0" ref="svg:font-face-src"/>
            <xs:element minOccurs="0" ref="svg:definition-src"/>
          </xs:sequence>
          <xs:attributeGroup ref="svg:stdAttrs"/>
          <xs:attribute name="font-family"/>
          <xs:attribute name="font-style"/>
          <xs:attribute name="font-variant"/>
          <xs:attribute name="font-weight"/>
          <xs:attribute name="font-stretch"/>
          <xs:attribute name="font-size"/>
          <xs:attribute name="unicode-range"/>
          <xs:attribute name="units-per-em" type="svg:Number"/>
          <xs:attribute name="panose-1"/>
          <xs:attribute name="stemv" type="svg:Number"/>
          <xs:attribute name="stemh" type="svg:Number"/>
          <xs:attribute name="slope" type="svg:Number"/>
          <xs:attribute name="cap-height" type="svg:Number"/>
          <xs:attribute name="x-height" type="svg:Number"/>
          <xs:attribute name="accent-height" type="svg:Number"/>
          <xs:attribute name="ascent" type="svg:Number"/>
          <xs:attribute name="descent" type="svg:Number"/>
          <xs:attribute name="widths"/>
          <xs:attribute name="bbox"/>
          <xs:attribute name="ideographic" type="svg:Number"/>
          <xs:attribute name="alphabetic" type="svg:Number"/>
          <xs:attribute name="mathematical" type="svg:Number"/>
          <xs:attribute name="hanging" type="svg:Number"/>
          <xs:attribute name="v-ideographic" type="svg:Number"/>
          <xs:attribute name="v-alphabetic" type="svg:Number"/>
          <xs:attribute name="v-mathematical" type="svg:Number"/>
          <xs:attribute name="v-hanging" type="svg:Number"/>
          <xs:attribute name="underline-position" type="svg:Number"/>
          <xs:attribute name="underline-thickness" type="svg:Number"/>
          <xs:attribute name="strikethrough-position" type="svg:Number"/>
          <xs:attribute name="strikethrough-thickness" type="svg:Number"/>
          <xs:attribute name="overline-position" type="svg:Number"/>
          <xs:attribute name="overline-thickness" type="svg:Number"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="font-face-src">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element ref="svg:font-face-uri"/>
        <xs:element ref="svg:font-face-name"/>
      </xs:choice>
      <xs:attributeGroup ref="svg:stdAttrs"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="font-face-uri">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:font-face-format"/>
      </xs:sequence>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
      <xs:attribute ref="xlink:href" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="font-face-format">
    <xs:complexType>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute name="string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="font-face-name">
    <xs:complexType>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attribute name="name"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="definition-src">
    <xs:complexType>
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:xlinkRefAttrs"/>
      <xs:attribute ref="xlink:href" use="required"/>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Metadata 
    ==============================================================
  -->
  <xs:element name="metadata">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="svg:stdAttrs"/>
    </xs:complexType>
  </xs:element>
  <!--
    ==============================================================
    DECLARATIONS CORRESPONDING TO: Extensibility 
    ==============================================================
  -->
  <xs:element name="foreignObject">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="svg:stdAttrs"/>
      <xs:attributeGroup ref="svg:testAttrs"/>
      <xs:attributeGroup ref="svg:langSpaceAttrs"/>
      <xs:attribute name="externalResourcesRequired" type="svg:Boolean"/>
      <xs:attribute name="class" type="svg:ClassList"/>
      <xs:attribute name="style" type="svg:StyleSheet"/>
      <xs:attributeGroup ref="svg:PresentationAttributes-All"/>
      <xs:attribute name="transform" type="svg:TransformList"/>
      <xs:attributeGroup ref="svg:graphicsElementEvents"/>
      <xs:attribute name="x" type="svg:Coordinate"/>
      <xs:attribute name="y" type="svg:Coordinate"/>
      <xs:attribute name="width" use="required" type="svg:Length"/>
      <xs:attribute name="height" use="required" type="svg:Length"/>
      <xs:attributeGroup ref="svg:StructuredText"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
